package com.gzsxy.sso.core.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gzsxy.sso.common.dto.request.MenuRequest;
import com.gzsxy.sso.common.dto.response.MenuRsp;
import com.gzsxy.sso.core.entity.Menu;
import com.gzsxy.sso.core.entity.vo.MenuQueryVo;

import java.util.List;


/**
 * @description: 菜单
 * @param
 * @return
 */
public interface MenuService extends IService<Menu> {

    /**
     * @description: 获取用户拥有的菜单权限
     * @param
     * @return
     */
    List<MenuRsp> getUserMenu(MenuQueryVo menuQueryVo);


    /**
     * @description: 获取全部菜单功能
     * @param
     * @return
     */
    List<MenuRsp> getMenu(MenuQueryVo menuQueryVo);


    /**
     * @description: 根据角色id查询所有功能列表
     * @param
     * @return
     */
    List<MenuRsp> getfunctionByRoles(String roleId);

    /**
     * @description: 添加菜单
     * @param
     * @return
     */
    void addMenu(MenuRequest menuRequest);

    /**
     * @description: 编辑菜单
     * @param
     * @return
     */
    void updateMenu(MenuRequest menuRequest);

    /**
     * @description: 根据id查询菜单
     * @param
     * @return
     */
    Menu selectById(String menuId);

    /**
     * @description: 删除菜单
     * @param
     * @return
     */
    void deleteMenu(String menuId, Boolean isConform);
}
